const path = require('path');
// 处理兼容路径
const htmlWebpackPlugin = require('html-webpack-plugin');
// 将生成的js文件与html关联生成HTML文件[可以指定模板文件]
const HtmlWebpackInlineSourcePlugin = require('html-webpack-inline-source-plugin');
// 将js打包打包到内敛模式
const config = {
 entry:{ //----------入口----------//
     index:'./js/index.js',
     main:'./js/main.js',
     login:'./js/login.js'
     // author:['./js/main.js','./js/login.js']
     // 字符串的话是单个入口文件
     // 数组的话是将多个入口文件打包到一起
     // 对象的话将多个入口打包生成多个文件(生成文件部分解析查看output)
 },  
 output:{ //----------出口----------//
     // 如果输入不是一个对象则输出的只是一个文件
     // 如果输入是对象则需要使用占位符来确保输出的唯一性
     path:path.resolve(__dirname,'dist'),
     // name:名字  hash本次打包的哈希值[本次为唯一]
     // chunkhash  可以理解为打包文件的版本号都不相同(常用--来处理缓存问题)
     filename:'js/[name].[chunkhash].js',
     publicPath:'http://cdn.hjm100.com/' 
     //项目上线的时候html中引入的打包文件路径以publicPath为开头的路径
 },
 module:{
     loaders:[
         {test:/\.css$/,loader:['style','css']} // 使用 test正则匹配文件名 用后面对应的loader处理
     ]
 },
 plugins:[//----------插件----------//
    new htmlWebpackPlugin({
        template:'index.html',             // 指向根路径下的html
        filename:'index.[hash].html',      // 指定生成文件的名称与哈希值
        inject:'head',                     // script标签存放的位置(如果要在html内嵌入script一定要有存放位置属性)
        title:'我是首页',                   // 设置title
        inlineSource: 'main',              // 可以更文件名或者正则匹配 /.main.(?:js|css)$/ 将所有以main.css结尾的都打包进来
        minify:{                           // 对当前生成的html进行压缩
            removeComments:true,           // 删除注释
            collapseWhitespace:true,       // 删除空格
        },
        // excludeChunks:['main']            // 除index之外的所有js  
        //如何将一些初始化的脚本引入到html中来减少http请求来快速加载
    }),
    new htmlWebpackPlugin({
        template:'login.html',          // 指向根路径下的html
        filename:'login.[hash].html',   // 指定生成文件的名称与哈希值
    }),
    new htmlWebpackPlugin({
        template:'main.html',          // 指向根路径下的html
        filename:'main.[hash].html',   // 指定生成文件的名称与哈希值
    }),
    new HtmlWebpackInlineSourcePlugin()
 ] 

}

module.exports = config;

